<p>Packages:</p>
<ul class="simple">
<li>
<a href="#apps.kurator.dev%2fv1alpha1">apps.kurator.dev/v1alpha1</a>
</li>
</ul>
<h2 id="apps.kurator.dev/v1alpha1">apps.kurator.dev/v1alpha1</h2>
<p>Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group</p>
Resource Types:
<ul class="simple"><li>
<a href="#apps.kurator.dev/v1alpha1.Application">Application</a>
</li></ul>
<h3 id="apps.kurator.dev/v1alpha1.Application">Application
</h3>
<p>Application is the schema for the application&rsquo;s API.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>apiVersion</code><br>
string</td>
<td>
<code>apps.kurator.dev/v1alpha1</code>
</td>
</tr>
<tr>
<td>
<code>kind</code><br>
string
</td>
<td>
<code>Application</code>
</td>
</tr>
<tr>
<td>
<code>metadata</code><br>
<em>
<a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.25/#objectmeta-v1-meta">
Kubernetes meta/v1.ObjectMeta
</a>
</em>
</td>
<td>
Refer to the Kubernetes API documentation for the fields of the
<code>metadata</code> field.
</td>
</tr>
<tr>
<td>
<code>spec</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSpec">
ApplicationSpec
</a>
</em>
</td>
<td>
<table>
<tr>
<td>
<code>source</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSource">
ApplicationSource
</a>
</em>
</td>
<td>
<p>Source defines the artifact source.</p>
</td>
</tr>
<tr>
<td>
<code>syncPolicies</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">
[]ApplicationSyncPolicy
</a>
</em>
</td>
<td>
<p>SyncPolicies controls how the artifact will be customized and where it will be synced.</p>
</td>
</tr>
<tr>
<td>
<code>destination</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationDestination">
ApplicationDestination
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Destination defines the destination clusters where the artifacts will be synced.
It can be overridden by the syncPolicies&rsquo; destination.
And if both the current field and syncPolicies&rsquo; destination are empty, the application will be deployed directly in the cluster where kurator resides.</p>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<code>status</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationStatus">
ApplicationStatus
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationDestination">ApplicationDestination
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSpec">ApplicationSpec</a>, 
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">ApplicationSyncPolicy</a>)
</p>
<p>ApplicationDestination defines the configuration to dispatch an artifact to a fleet or specific clusters.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>fleet</code><br>
<em>
string
</em>
</td>
<td>
<p>Fleet defines the fleet to dispatch the artifact.</p>
</td>
</tr>
<tr>
<td>
<code>clusterSelector</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ClusterSelector">
ClusterSelector
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>ClusterSelector specifies the selectors to select the clusters within the fleet.
If unspecified, all clusters in the fleet will be selected.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationSource">ApplicationSource
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSpec">ApplicationSpec</a>)
</p>
<p>ApplicationSource defines the configuration to produce an artifact for git, helm or oci repository.
Note only one source can be specified.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>gitRepository</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#GitRepositorySpec">
github.com/fluxcd/source-controller/api/v1beta2.GitRepositorySpec
</a>
</em>
</td>
<td>
<em>(Optional)</em>
</td>
</tr>
<tr>
<td>
<code>helmRepository</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#HelmRepositorySpec">
github.com/fluxcd/source-controller/api/v1beta2.HelmRepositorySpec
</a>
</em>
</td>
<td>
<em>(Optional)</em>
</td>
</tr>
<tr>
<td>
<code>ociRepository</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#OCIRepositorySpec">
github.com/fluxcd/source-controller/api/v1beta2.OCIRepositorySpec
</a>
</em>
</td>
<td>
<em>(Optional)</em>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationSourceStatus">ApplicationSourceStatus
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationStatus">ApplicationStatus</a>)
</p>
<p>applicationSourceStatus defines the observed state of the artifact source.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>gitRepoStatus</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#GitRepositoryStatus">
github.com/fluxcd/source-controller/api/v1beta2.GitRepositoryStatus
</a>
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>helmRepoStatus</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#HelmRepositoryStatus">
github.com/fluxcd/source-controller/api/v1beta2.HelmRepositoryStatus
</a>
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>ociRepoStatus</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/source-controller/api/v1#OCIRepositoryStatus">
github.com/fluxcd/source-controller/api/v1beta2.OCIRepositoryStatus
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationSpec">ApplicationSpec
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.Application">Application</a>)
</p>
<p>ApplicationSpec defines the configuration to produce an artifact and how to dispatch it.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>source</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSource">
ApplicationSource
</a>
</em>
</td>
<td>
<p>Source defines the artifact source.</p>
</td>
</tr>
<tr>
<td>
<code>syncPolicies</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">
[]ApplicationSyncPolicy
</a>
</em>
</td>
<td>
<p>SyncPolicies controls how the artifact will be customized and where it will be synced.</p>
</td>
</tr>
<tr>
<td>
<code>destination</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationDestination">
ApplicationDestination
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Destination defines the destination clusters where the artifacts will be synced.
It can be overridden by the syncPolicies&rsquo; destination.
And if both the current field and syncPolicies&rsquo; destination are empty, the application will be deployed directly in the cluster where kurator resides.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationStatus">ApplicationStatus
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.Application">Application</a>)
</p>
<p>ApplicationStatus defines the observed state of Application.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>sourceStatus</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSourceStatus">
ApplicationSourceStatus
</a>
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>syncStatus</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncStatus">
[]ApplicationSyncStatus
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">ApplicationSyncPolicy
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSpec">ApplicationSpec</a>)
</p>
<p>ApplicationSyncPolicy defines the configuration to sync an artifact.
Only oneof <code>kustomization</code> or <code>helm</code> can be specified to manage application sync.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>name</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Name defines the name of the sync policy.
If unspecified, a name of format <code>&lt;application name&gt;-&lt;index&gt;</code> will be generated.</p>
</td>
</tr>
<tr>
<td>
<code>kustomization</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.Kustomization">
Kustomization
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Kustomization defines the configuration to calculate the desired state
from a source using kustomize.</p>
</td>
</tr>
<tr>
<td>
<code>helm</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.HelmRelease">
HelmRelease
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>HelmRelease defines the desired state of a Helm release.</p>
</td>
</tr>
<tr>
<td>
<code>destination</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationDestination">
ApplicationDestination
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Destination defines the destination for the artifact.
If specified, it will override the destination specified at Application level.</p>
</td>
</tr>
<tr>
<td>
<code>rollout</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.RolloutConfig">
RolloutConfig
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Rollout defines the rollout configurations to be used.
If specified, a uniform rollout policy is configured for this installed object.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ApplicationSyncStatus">ApplicationSyncStatus
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationStatus">ApplicationStatus</a>)
</p>
<p>ApplicationSyncStatus defines the observed state of Application sync.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>name</code><br>
<em>
string
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>kustomizationStatus</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/kustomize-controller/api/v1#KustomizationStatus">
github.com/fluxcd/kustomize-controller/api/v1beta2.KustomizationStatus
</a>
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>HelmReleaseStatus</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#HelmReleaseStatus">
github.com/fluxcd/helm-controller/api/v2beta1.HelmReleaseStatus
</a>
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>rolloutStatus</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.RolloutStatus">
RolloutStatus
</a>
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.CanaryConfig">CanaryConfig
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.TrafficRoutingConfig">TrafficRoutingConfig</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>maxWeight</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>Max traffic weight routed to preview service.
If empty and no stepweights are set, 100 will be used by default.</p>
</td>
</tr>
<tr>
<td>
<code>stepWeight</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>StepWeight defines the incremental traffic weight step for analysis phase
If set stepWeight: 10 and set maxWeight: 50
The flow ratio between PREVIEW and PRIMARY at each step is
(10:90) (20:80) (30:70) (40:60) (50:50)</p>
</td>
</tr>
<tr>
<td>
<code>stepWeights</code><br>
<em>
[]int
</em>
</td>
<td>
<em>(Optional)</em>
<p>StepWeights defines the incremental traffic weight steps for analysis phase
Note: Cannot configure stepWeights and stepWeight at the same time.
If both stepWeights and maxWeight are configured, the traffic
will be scaled according to the settings in stepWeights only.
If set stepWeights: [1, 10, 20, 80]
The flow ratio between PREVIEW and PRIMARY at each step is
(1:99) (10:90) (20:80) (80:20)</p>
</td>
</tr>
<tr>
<td>
<code>stepWeightPromotion</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>StepWeightPromotion defines the incremental traffic weight step for promotion phase
If maxWeight: 50 and set stepWeightPromotion: 20
After a successful test, traffic to the PRIMARY version changes as follows: 50 70 90 100.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.CanaryThresholdRange">CanaryThresholdRange
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.Metric">Metric</a>)
</p>
<p>CanaryThresholdRange defines the range used for metrics validation</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>min</code><br>
<em>
float64
</em>
</td>
<td>
<em>(Optional)</em>
<p>Minimum value</p>
</td>
</tr>
<tr>
<td>
<code>max</code><br>
<em>
float64
</em>
</td>
<td>
<em>(Optional)</em>
<p>Maximum value</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.ClusterSelector">ClusterSelector
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationDestination">ApplicationDestination</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>matchLabels</code><br>
<em>
map[string]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is &ldquo;key&rdquo;, the operator is &ldquo;In&rdquo;, and the values array contains only &ldquo;value&rdquo;.
More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors">https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors</a></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.CommonMetadata">CommonMetadata
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.Kustomization">Kustomization</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>annotations</code><br>
<em>
map[string]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Annotations to be added to the object&rsquo;s metadata.</p>
</td>
</tr>
<tr>
<td>
<code>labels</code><br>
<em>
map[string]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Labels to be added to the object&rsquo;s metadata.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.CrossNamespaceObjectReference">CrossNamespaceObjectReference
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.RolloutConfig">RolloutConfig</a>)
</p>
<p>CrossNamespaceObjectReference contains enough information to let you locate the
typed referenced object at cluster level</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>apiVersion</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>API version of the referent</p>
</td>
</tr>
<tr>
<td>
<code>kind</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Kind of the referent</p>
</td>
</tr>
<tr>
<td>
<code>name</code><br>
<em>
string
</em>
</td>
<td>
<p>Name of the referent</p>
</td>
</tr>
<tr>
<td>
<code>namespace</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Namespace of the referent</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.CustomMetadata">CustomMetadata
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.RolloutConfig">RolloutConfig</a>)
</p>
<p>CustomMetadata holds labels and annotations to set on generated objects.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>labels</code><br>
<em>
map[string]string
</em>
</td>
<td>
</td>
</tr>
<tr>
<td>
<code>annotations</code><br>
<em>
map[string]string
</em>
</td>
<td>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.HelmChartTemplate">HelmChartTemplate
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.HelmRelease">HelmRelease</a>)
</p>
<p>HelmChartTemplate defines the template from which the controller will
generate a v1beta2.HelmChart object in the same namespace as the referenced
v1beta2.Source.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>metadata</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.HelmChartTemplateObjectMeta">
HelmChartTemplateObjectMeta
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>ObjectMeta holds the template for metadata like labels and annotations.</p>
</td>
</tr>
<tr>
<td>
<code>spec</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.HelmChartTemplateSpec">
HelmChartTemplateSpec
</a>
</em>
</td>
<td>
<p>Spec holds the template for the v1beta2.HelmChartSpec for this HelmRelease.</p>
<table>
<tr>
<td>
<code>chart</code><br>
<em>
string
</em>
</td>
<td>
<p>The name or path the Helm chart is available at in the SourceRef.</p>
</td>
</tr>
<tr>
<td>
<code>version</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Version semver expression, ignored for charts from v1beta2.GitRepository and
v1beta2.Bucket sources. Defaults to latest when omitted.</p>
</td>
</tr>
<tr>
<td>
<code>interval</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Interval at which to check the v1beta2.Source for updates. Defaults to
&lsquo;HelmReleaseSpec.Interval&rsquo;.</p>
</td>
</tr>
<tr>
<td>
<code>reconcileStrategy</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Determines what enables the creation of a new artifact. Valid values are
(&lsquo;ChartVersion&rsquo;, &lsquo;Revision&rsquo;).
See the documentation of the values for an explanation on their behavior.
Defaults to ChartVersion when omitted.</p>
</td>
</tr>
<tr>
<td>
<code>valuesFiles</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Alternative list of values files to use as the chart values (values.yaml
is not included by default), expected to be a relative path in the SourceRef.
Values files are merged in the order of this list with the last file overriding
the first. Ignored when omitted.</p>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.HelmChartTemplateObjectMeta">HelmChartTemplateObjectMeta
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.HelmChartTemplate">HelmChartTemplate</a>)
</p>
<p>HelmChartTemplateObjectMeta defines the template for the ObjectMeta of a
v1beta2.HelmChart.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>labels</code><br>
<em>
map[string]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Map of string keys and values that can be used to organize and categorize
(scope and select) objects.
More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/">https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/</a></p>
</td>
</tr>
<tr>
<td>
<code>annotations</code><br>
<em>
map[string]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/</a></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.HelmChartTemplateSpec">HelmChartTemplateSpec
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.HelmChartTemplate">HelmChartTemplate</a>)
</p>
<p>HelmChartTemplateSpec defines the template from which the controller will
generate a v1beta2.HelmChartSpec object.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>chart</code><br>
<em>
string
</em>
</td>
<td>
<p>The name or path the Helm chart is available at in the SourceRef.</p>
</td>
</tr>
<tr>
<td>
<code>version</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Version semver expression, ignored for charts from v1beta2.GitRepository and
v1beta2.Bucket sources. Defaults to latest when omitted.</p>
</td>
</tr>
<tr>
<td>
<code>interval</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Interval at which to check the v1beta2.Source for updates. Defaults to
&lsquo;HelmReleaseSpec.Interval&rsquo;.</p>
</td>
</tr>
<tr>
<td>
<code>reconcileStrategy</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Determines what enables the creation of a new artifact. Valid values are
(&lsquo;ChartVersion&rsquo;, &lsquo;Revision&rsquo;).
See the documentation of the values for an explanation on their behavior.
Defaults to ChartVersion when omitted.</p>
</td>
</tr>
<tr>
<td>
<code>valuesFiles</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Alternative list of values files to use as the chart values (values.yaml
is not included by default), expected to be a relative path in the SourceRef.
Values files are merged in the order of this list with the last file overriding
the first. Ignored when omitted.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.HelmRelease">HelmRelease
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">ApplicationSyncPolicy</a>)
</p>
<p>Note: copied from <a href="https://github.com/fluxcd/helm-controller/blob/main/api/v2beta1/helmrelease_types.go">https://github.com/fluxcd/helm-controller/blob/main/api/v2beta1/helmrelease_types.go</a>
HelmRelease defines the desired state of a Helm release.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>chart</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.HelmChartTemplate">
HelmChartTemplate
</a>
</em>
</td>
<td>
<p>Chart defines the template of the v1beta2.HelmChart that should be created
for this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>interval</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<p>Interval at which to reconcile the Helm release.</p>
</td>
</tr>
<tr>
<td>
<code>suspend</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Suspend tells the controller to suspend reconciliation for this HelmRelease,
it does not apply to already started reconciliations. Defaults to false.</p>
</td>
</tr>
<tr>
<td>
<code>releaseName</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>ReleaseName used for the Helm release. Defaults to a composition of
&lsquo;[TargetNamespace-]Name&rsquo;.</p>
</td>
</tr>
<tr>
<td>
<code>targetNamespace</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>TargetNamespace to target when performing operations for the HelmRelease.
Defaults to the namespace of the HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>dependsOn</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/pkg/apis/meta#NamespacedObjectReference">
[]github.com/fluxcd/pkg/apis/meta.NamespacedObjectReference
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>DependsOn may contain a meta.NamespacedObjectReference slice with
references to HelmRelease resources that must be ready before this HelmRelease
can be reconciled.</p>
</td>
</tr>
<tr>
<td>
<code>timeout</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Timeout is the time to wait for any individual Kubernetes operation (like Jobs
for hooks) during the performance of a Helm action. Defaults to &lsquo;5m0s&rsquo;.</p>
</td>
</tr>
<tr>
<td>
<code>maxHistory</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>MaxHistory is the number of revisions saved by Helm for this HelmRelease.
Use &lsquo;0&rsquo; for an unlimited number of revisions; defaults to &lsquo;10&rsquo;.</p>
</td>
</tr>
<tr>
<td>
<code>serviceAccountName</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>The name of the Kubernetes service account to impersonate
when reconciling this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>persistentClient</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>PersistentClient tells the controller to use a persistent Kubernetes
client for this release. When enabled, the client will be reused for the
duration of the reconciliation, instead of being created and destroyed
for each (step of a) Helm action.</p>
<p>This can improve performance, but may cause issues with some Helm charts
that for example do create Custom Resource Definitions during installation
outside Helm&rsquo;s CRD lifecycle hooks, which are then not observed to be
available by e.g. post-install hooks.</p>
<p>If not set, it defaults to true.</p>
</td>
</tr>
<tr>
<td>
<code>install</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#Install">
github.com/fluxcd/helm-controller/api/v2beta1.Install
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Install holds the configuration for Helm install actions for this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>upgrade</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#Upgrade">
github.com/fluxcd/helm-controller/api/v2beta1.Upgrade
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Upgrade holds the configuration for Helm upgrade actions for this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>rollback</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#Rollback">
github.com/fluxcd/helm-controller/api/v2beta1.Rollback
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Rollback holds the configuration for Helm rollback actions for this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>uninstall</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#Uninstall">
github.com/fluxcd/helm-controller/api/v2beta1.Uninstall
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Uninstall holds the configuration for Helm uninstall actions for this HelmRelease.</p>
</td>
</tr>
<tr>
<td>
<code>valuesFrom</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/helm-controller/api/v2beta1#ValuesReference">
[]github.com/fluxcd/helm-controller/api/v2beta1.ValuesReference
</a>
</em>
</td>
<td>
<p>ValuesFrom holds references to resources containing Helm values for this HelmRelease,
and information about how they should be merged.</p>
</td>
</tr>
<tr>
<td>
<code>values</code><br>
<em>
<a href="https://pkg.go.dev/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1?tab=doc#JSON">
Kubernetes /apiextensions/v1.JSON
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Values holds the values for this Helm release.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.Kustomization">Kustomization
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">ApplicationSyncPolicy</a>)
</p>
<p>Note: copied from <a href="https://github.com/fluxcd/kustomize-controller/blob/main/api/v1/kustomization_types.go">https://github.com/fluxcd/kustomize-controller/blob/main/api/v1/kustomization_types.go</a>
Kustomization defines the configuration to calculate the desired state
from a Source using Kustomize.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>commonMetadata</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CommonMetadata">
CommonMetadata
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>CommonMetadata specifies the common labels and annotations that are
applied to all resources. Any existing label or annotation will be
overridden if its key matches a common one.</p>
</td>
</tr>
<tr>
<td>
<code>dependsOn</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/pkg/apis/meta#NamespacedObjectReference">
[]github.com/fluxcd/pkg/apis/meta.NamespacedObjectReference
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>DependsOn may contain a meta.NamespacedObjectReference slice
with references to Kustomization resources that must be ready before this
Kustomization can be reconciled.</p>
</td>
</tr>
<tr>
<td>
<code>interval</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<p>The interval at which to reconcile the Kustomization.</p>
</td>
</tr>
<tr>
<td>
<code>retryInterval</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>The interval at which to retry a previously failed reconciliation.
When not specified, the controller uses the KustomizationSpec.Interval
value to retry failures.</p>
</td>
</tr>
<tr>
<td>
<code>path</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Path to the directory containing the kustomization.yaml file, or the
set of plain YAMLs a kustomization.yaml should be generated for.
Defaults to &lsquo;None&rsquo;, which translates to the root path of the SourceRef.</p>
</td>
</tr>
<tr>
<td>
<code>prune</code><br>
<em>
bool
</em>
</td>
<td>
<p>Prune enables garbage collection.</p>
</td>
</tr>
<tr>
<td>
<code>patches</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/pkg/apis/kustomize#Patch">
[]github.com/fluxcd/pkg/apis/kustomize.Patch
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Strategic merge and JSON patches, defined as inline YAML objects,
capable of targeting objects based on kind, label and annotation selectors.</p>
</td>
</tr>
<tr>
<td>
<code>images</code><br>
<em>
<a href="https://pkg.go.dev/github.com/fluxcd/pkg/apis/kustomize#Image">
[]github.com/fluxcd/pkg/apis/kustomize.Image
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Images is a list of (image name, new name, new tag or digest)
for changing image names, tags or digests. This can also be achieved with a
patch, but this operator is simpler to specify.</p>
</td>
</tr>
<tr>
<td>
<code>suspend</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>This flag tells the controller to suspend subsequent kustomize executions,
it does not apply to already started executions. Defaults to false.</p>
</td>
</tr>
<tr>
<td>
<code>targetNamespace</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>TargetNamespace sets or overrides the namespace in the
kustomization.yaml file.</p>
</td>
</tr>
<tr>
<td>
<code>timeout</code><br>
<em>
<a href="https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#Duration">
Kubernetes meta/v1.Duration
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Timeout for validation, apply and health checking operations.
Defaults to &lsquo;Interval&rsquo; duration.</p>
</td>
</tr>
<tr>
<td>
<code>force</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Force instructs the controller to recreate resources
when patching fails due to an immutable field change.</p>
</td>
</tr>
<tr>
<td>
<code>components</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Components specifies relative paths to specifications of other Components.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.Metric">Metric
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.TrafficAnalysis">TrafficAnalysis</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>name</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.MetricName">
MetricName
</a>
</em>
</td>
<td>
<p>Name of the metric.
There are two built-in metrics: <code>request-success-rate</code> and <code>request-duration</code>.
And you can use the metrics that come with the gateway.
When you define a metric rule in <code>CustomMetric</code>, fill in the custom name in this field.</p>
</td>
</tr>
<tr>
<td>
<code>intervalSeconds</code><br>
<em>
int
</em>
</td>
<td>
<p>IntervalSeconds defines metrics query interval.
Defaults to 60.</p>
</td>
</tr>
<tr>
<td>
<code>thresholdRange</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CanaryThresholdRange">
CanaryThresholdRange
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>ThresholdRange defines valid value accepted for this metric.
If no thresholdRange are set, Kurator will default every check is successful.</p>
</td>
</tr>
<tr>
<td>
<code>customMetric</code><br>
<em>
github.com/fluxcd/flagger/pkg/apis/flagger/v1beta1.MetricTemplateSpec
</em>
</td>
<td>
<em>(Optional)</em>
<p>CustomMetric defines the metric template to be used for this metric.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.MetricName">MetricName
(<code>string</code> alias)</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.Metric">Metric</a>)
</p>
<h3 id="apps.kurator.dev/v1alpha1.RolloutConfig">RolloutConfig
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncPolicy">ApplicationSyncPolicy</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>testLoader</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Testloader defines whether to install a private testloader for Kurator.
Testloader generates traffic during rollout analysis.
Default is false. Because Kurator will installs a public testloader with the flagger installation.
If set it to true, Kurator will install a private testloader dedicated to requesting the workload.</p>
</td>
</tr>
<tr>
<td>
<code>trafficRoutingProvider</code><br>
<em>
Kurator fleet/v1alpha1.Provider
</em>
</td>
<td>
<p>TrafficRoutingProvider defines traffic routing provider.
Kurator supports istio,kuma,nginx for now.
Other provider will be added later.</p>
</td>
</tr>
<tr>
<td>
<code>workload</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CrossNamespaceObjectReference">
CrossNamespaceObjectReference
</a>
</em>
</td>
<td>
<p>Workload specifies what workload to deploy the test to.
Workload of type Deployment or DaemonSet.</p>
</td>
</tr>
<tr>
<td>
<code>serviceName</code><br>
<em>
string
</em>
</td>
<td>
<p>ServiceName holds the name of a service which matches the workload.</p>
</td>
</tr>
<tr>
<td>
<code>port</code><br>
<em>
int32
</em>
</td>
<td>
<p>Port exposed by the service.</p>
</td>
</tr>
<tr>
<td>
<code>primary</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CustomMetadata">
CustomMetadata
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Primary is the labels and annotations are added to the primary service.
Primary service is stable service. The name of the primary service in the cluster is <service name>-primary</p>
</td>
</tr>
<tr>
<td>
<code>preview</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CustomMetadata">
CustomMetadata
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Preview is the labels and annotations are added to the preview service.
The name of the preview service in the cluster is <service name>-canary</p>
</td>
</tr>
<tr>
<td>
<code>rolloutPolicy</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.RolloutPolicy">
RolloutPolicy
</a>
</em>
</td>
<td>
<p>RolloutPolicy defines the release strategy of workload.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.RolloutPolicy">RolloutPolicy
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.RolloutConfig">RolloutConfig</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>trafficRouting</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.TrafficRoutingConfig">
TrafficRoutingConfig
</a>
</em>
</td>
<td>
<p>TrafficRouting defines the configuration of the gateway, traffic routing rules, and so on.</p>
</td>
</tr>
<tr>
<td>
<code>trafficAnalysis</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.TrafficAnalysis">
TrafficAnalysis
</a>
</em>
</td>
<td>
<p>TrafficAnalysis defines the validation process of a release</p>
</td>
</tr>
<tr>
<td>
<code>rolloutTimeoutSeconds</code><br>
<em>
int32
</em>
</td>
<td>
<em>(Optional)</em>
<p>RolloutTimeoutSeconds represents the maximum time in seconds for a
preview deployment to make progress before it is considered to be failed.
Defaults to 600.</p>
</td>
</tr>
<tr>
<td>
<code>skipTrafficAnalysis</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>SkipTrafficAnalysis promotes the preview release without analyzing it.</p>
</td>
</tr>
<tr>
<td>
<code>revertOnDeletion</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>RevertOnDeletion defines whether to revert a resource to its initial state when deleting rollout resource.
Use of the revertOnDeletion property should be enabled
when you no longer plan to rely on Kurator for deployment management.
Kurator will install the Flagger to the specified cluster via a fleet plugin.
If RevertOnDeletion is set to true, the Flagger will revert a resource to its initial state
when the deleting Application.Spec.ApplicationSyncPolicy.Rollout or
the Application.</p>
</td>
</tr>
<tr>
<td>
<code>suspend</code><br>
<em>
bool
</em>
</td>
<td>
<em>(Optional)</em>
<p>Suspend, if set to true will suspend the rollout, disabling any rollout runs
regardless of any changes to its target, services, etc. Note that if the
rollout is suspended during an analysis, its paused until the rollout is uninterrupted.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.RolloutStatus">RolloutStatus
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.ApplicationSyncStatus">ApplicationSyncStatus</a>)
</p>
<p>RolloutStatus defines the observed state of Rollout.</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>clusterName</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>ClusterName is the Name of the cluster where the rollout is being performed.</p>
</td>
</tr>
<tr>
<td>
<code>rolloutNameInCluster</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>RolloutNameInCluster is the name of the rollout being performed within this cluster.</p>
</td>
</tr>
<tr>
<td>
<code>rolloutStatusInCluster</code><br>
<em>
github.com/fluxcd/flagger/pkg/apis/flagger/v1beta1.CanaryStatus
</em>
</td>
<td>
<em>(Optional)</em>
<p>RolloutStatusInCluster is the current status of the Rollout performed within this cluster.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.SessionAffinity">SessionAffinity
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.TrafficAnalysis">TrafficAnalysis</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>cookieName</code><br>
<em>
string
</em>
</td>
<td>
<p>CookieName is the key that will be used for the session affinity cookie.</p>
</td>
</tr>
<tr>
<td>
<code>maxAge</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>MaxAge indicates the number of seconds until the session affinity cookie will expire.
ref: <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#attributes">https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#attributes</a>
The default value is 86,400 seconds, i.e. a day.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.TrafficAnalysis">TrafficAnalysis
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.RolloutPolicy">RolloutPolicy</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>checkIntervalSeconds</code><br>
<em>
int
</em>
</td>
<td>
<p>CheckIntervalSeconds defines the schedule interval for this traffic analysis.
Interval is the time interval between each test.
Kurator changes the traffic distribution rules (if they need to be changed)
and performs a traffic analysis every so often.
Defaults to 60.</p>
</td>
</tr>
<tr>
<td>
<code>checkFailedTimes</code><br>
<em>
int
</em>
</td>
<td>
<p>CheckFailedTimes defines the max number of failed checks before the traffic analysis is terminated
If set &ldquo;checkFailedTimes: 2&rdquo;. It means Kurator will rollback when check failed 2 times.</p>
</td>
</tr>
<tr>
<td>
<code>metrics</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.Metric">
[]Metric
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Metric check list for this traffic analysis
Flagger comes with two builtin metric checks: HTTP request success rate and duration.
Can use either built-in metric checks or custom checks.
If you want use custom checks, you can refer to <a href="https://docs.flagger.app/usage/metrics#custom-metrics">https://docs.flagger.app/usage/metrics#custom-metrics</a>.</p>
</td>
</tr>
<tr>
<td>
<code>webhooks</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.Webhook">
Webhook
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>Webhook list for this traffic analysis</p>
</td>
</tr>
<tr>
<td>
<code>sessionAffinity</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.SessionAffinity">
SessionAffinity
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>SessionAffinity represents the session affinity settings for a analysis run.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.TrafficRoutingConfig">TrafficRoutingConfig
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.RolloutPolicy">RolloutPolicy</a>)
</p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>timeoutSeconds</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>TimeoutSeconds of the HTTP or gRPC request.</p>
</td>
</tr>
<tr>
<td>
<code>gateways</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Gateways attached to the generated Istio virtual service.
Defaults to the internal mesh gateway.</p>
</td>
</tr>
<tr>
<td>
<code>hosts</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Defaults to the RolloutConfig.ServiceName</p>
</td>
</tr>
<tr>
<td>
<code>retries</code><br>
<em>
github.com/fluxcd/flagger/pkg/apis/istio/v1alpha3.HTTPRetry
</em>
</td>
<td>
<em>(Optional)</em>
<p>Retries describes the retry policy to use when a HTTP request fails.
For example, the following rule sets the maximum number of retries to three,
with a 2s timeout per retry attempt.
e.g.:</p>
<pre><code class="language-yaml">retries:
attempts: 3
perTryTimeout: 2s
retryOn: gateway-error,connect-failure,refused-stream
</code></pre>
</td>
</tr>
<tr>
<td>
<code>headers</code><br>
<em>
github.com/fluxcd/flagger/pkg/apis/istio/v1alpha3.Headers
</em>
</td>
<td>
<em>(Optional)</em>
<p>Headers operations for the Request.
e.g.</p>
<pre><code class="language-yaml">headers:
request:
add:
x-some-header: &quot;value&quot;
</code></pre>
</td>
</tr>
<tr>
<td>
<code>corsPolicy</code><br>
<em>
github.com/fluxcd/flagger/pkg/apis/istio/v1alpha3.CorsPolicy
</em>
</td>
<td>
<em>(Optional)</em>
<p>Cross-Origin Resource Sharing policy for the request.
e.g.</p>
<pre><code class="language-yaml">corsPolicy:
allowHeaders:
- x-some-header
allowMethods:
- GET
allowOrigin:
- example.com
maxAge: 24h
</code></pre>
</td>
</tr>
<tr>
<td>
<code>host</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Host defines the domain name you specify.
Only for NGINX
Fill in the host field with your own domain as the host of the Ingress.
The actual created Ingress is as follows:</p>
<pre><code class="language-yaml">apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
namespace: application.syncPolicies.rollout.workload.namespace
labels:
app: application.syncPolicies.rollout.ServiceName
annotations:
kubernetes.io/ingress.class: &quot;nginx&quot;
spec:
rules:
- host: &quot;&quot;
http:
paths:
- pathType: Prefix
path: &quot;/&quot;
backend:
service:
name: application.syncPolicies.rollout.ServiceName
port:
number: application.syncPolicies.rollout.port
</code></pre>
</td>
</tr>
<tr>
<td>
<code>protocol</code><br>
<em>
string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Protocol defines the protocol used by Kuma
Only for kuma
Defaults to http</p>
</td>
</tr>
<tr>
<td>
<code>canaryStrategy</code><br>
<em>
<a href="#apps.kurator.dev/v1alpha1.CanaryConfig">
CanaryConfig
</a>
</em>
</td>
<td>
<em>(Optional)</em>
<p>CanaryStrategy defines parameters for Canary Deployment.
Note: Kurator determines A/B Testing, Blue/Green Deployment, or Canary Deployment
based on the presence of content in the canaryStrategy field.
So can&rsquo;t configure canaryStrategy and analysisTimes at the same time.</p>
</td>
</tr>
<tr>
<td>
<code>analysisTimes</code><br>
<em>
int
</em>
</td>
<td>
<em>(Optional)</em>
<p>AnalysisTimes defines the number of traffic analysis checks to run for A/B Testing and Blue/Green Deployment
If set &ldquo;analysisTimes: 10&rdquo;. It means Kurator will checks the preview service ten times.</p>
</td>
</tr>
<tr>
<td>
<code>match</code><br>
<em>
[]github.com/fluxcd/flagger/pkg/apis/istio/v1alpha3.HTTPMatchRequest
</em>
</td>
<td>
<em>(Optional)</em>
<p>Match conditions of A/B Testing HTTP header.
The header keys must be lowercase and use hyphen as the separator.
values are case-sensitive and formatted as follows:
- <code>exact: &quot;value&quot;</code> for exact string match
- <code>prefix: &quot;value&quot;</code> for prefix-based match
- <code>regex: &quot;value&quot;</code> for ECMAscript style regex-based match
e.g.:</p>
<pre><code class="language-yaml">match:
- headers:
myheader:
regex: &quot;.*XXXX.*&quot;
- headers:
cookie:
regex: &quot;^(.*?;)?(type=insider)(;.*)?$&quot;
</code></pre>
<p>Note: If you want to use A/B Testing, you need to configure analysisTimes and match.
If you only configure analysisTimes, it will trigger Blue/Green Deployment.
You can configure both canaryStrategy and match.
If configure both canaryStrategy and match, Traffic that meets match goes towards the preview service.
Traffic that doesn&rsquo;t meet the match will go to the primary service and preview service proportionally.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 id="apps.kurator.dev/v1alpha1.Webhook">Webhook
</h3>
<p>
(<em>Appears on:</em>
<a href="#apps.kurator.dev/v1alpha1.TrafficAnalysis">TrafficAnalysis</a>)
</p>
<p>Kurator generates traffic load by invoking the testloader through a webhook to request the service.
e.g.</p>
<pre><code class="language-yaml">webhooks:
- timeoutSeconds: 15
command:
- &quot;hey -z 1m -q 10 -c 2 http://podinfo-canary.test:9898/&quot;
</code></pre>
<p>The above example means that during trafficAnalysis, the cmd of &ldquo;<a href="http://flagger-loadtester.test/&quot;">http://flagger-loadtester.test/&rdquo;</a> is invoked
to execute the command &ldquo;hey -z 1m -q 10 -c 2 <a href="http://podinfo-canary.test:9898/&quot;">http://podinfo-canary.test:9898/&rdquo;</a></p>
<div class="md-typeset__scrollwrap">
<div class="md-typeset__table td-content">
<table>
<thead>
<tr>
<th>Field</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<code>timeoutSeconds</code><br>
<em>
int
</em>
</td>
<td>
<p>TimeoutSeconds defines request timeout for this webhook
Defaults to 60</p>
</td>
</tr>
<tr>
<td>
<code>command</code><br>
<em>
[]string
</em>
</td>
<td>
<em>(Optional)</em>
<p>Commands define to commands that executed by webhook.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="admonition note">
<p class="last">This page was automatically generated with <code>gen-crd-api-reference-docs</code></p>
</div>
